home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / m / maxonc++3.dms / maxonc++3.adf / DEMOS / LibReq.c < prev    next >
C/C++ Source or Header  |  1992-11-23  |  4KB  |  133 lines

  1. #include <exec/types.h>
  2. #include <libraries/dosextens.h>
  3. #include <functions.h>
  4. #include <stdio.h>
  5. #include <clib/rct_protos.h>
  6.  
  7. APTR RctBase,ApplBase;
  8.  
  9. void main( void)
  10. {
  11. SHORT handle,quit = 0;
  12. struct TagItem taglist[8];
  13. struct R_ScrModeReq *ScrModes;
  14. struct R_FileRequester *rf;
  15. struct R_FontRequester *rfnt;
  16. struct R_ScrModeReq *smr;
  17.  
  18. if( ! (RctBase =(APTR)OpenLibrary( ( UBYTE *)"rct.library",16L)))
  19.   {
  20.   printf("Can't open libraries\n");
  21.   return;
  22.   }
  23.  
  24. if( ApplBase = R_InitApplTags( RIA_Version, 1640L, RIA_Debug, 1L, RIA_AutoRenderColor, 1L, TAG_DONE))
  25.   {
  26.     do
  27.         {
  28.         taglist[0].ti_Tag    = RF_Handle;
  29.         taglist[0].ti_Data = 0L;
  30.         taglist[1].ti_Tag    = RF_FileReqAdr;
  31.         taglist[1].ti_Data = 0L;
  32.         taglist[2].ti_Tag = RF_InitialWidth;
  33.         taglist[2].ti_Data = 600;
  34.         taglist[3].ti_Tag = RF_InitialHeight;
  35.         taglist[3].ti_Data = 400;
  36.         taglist[4].ti_Tag    = TAG_DONE;
  37.     
  38.         if( R_Filer( ApplBase, taglist))
  39.             {
  40.             rf = (struct R_FileRequester *)taglist[1].ti_Data;
  41.             printf ("dir: [%s]\nfile: [%s]\nHandle [%ld]\n", rf->fr_Drawer, rf->fr_File,taglist[0].ti_Data);
  42.     
  43.             taglist[0].ti_Tag    = RF_FileReqAdr;
  44.             taglist[0].ti_Data = ( ULONG)rf;
  45.             taglist[1].ti_Tag    = TAG_DONE;
  46.         
  47.             if( R_Filer( ApplBase, taglist))    /* der zweite Aufruf mit der gleichen Liste */
  48.                 printf ("dir: [%s]\nfile: [%s]\n", rf->fr_Drawer, rf->fr_File);
  49.     
  50.     
  51.             taglist[0].ti_Tag    = RF_Handle;
  52.             taglist[0].ti_Data = 0L;
  53.             taglist[1].ti_Tag    = RF_FileReqAdr;
  54.             taglist[1].ti_Data = 0L;
  55.             taglist[2].ti_Tag    = TAG_DONE;
  56.         
  57.             if( R_Filer( ApplBase, taglist))    /* ein ganz neuer FileRequester */
  58.                 {
  59.                 rf = (struct R_FileRequester *)taglist[1].ti_Data;
  60.                 printf ("dir: [%s]\nfile: [%s]\nHandle [%ld]\n", rf->fr_Drawer, rf->fr_File,taglist[0].ti_Data);
  61.                 }
  62.     
  63.     
  64.             /* Oder so */
  65.     
  66.             taglist[0].ti_Tag    = R_New_Res;
  67.             taglist[0].ti_Data = 1L;
  68.             taglist[1].ti_Tag    = R_RetHandle;    /* muß nicht angegeben werden */
  69.             taglist[1].ti_Data = 0L;
  70.             taglist[2].ti_Tag    = TAG_DONE;
  71.     
  72.             if(rf = R_Create( ApplBase, R_FileReq, taglist))
  73.                 {
  74.                 taglist[0].ti_Tag    = RF_FileReqAdr;
  75.                 taglist[0].ti_Data = ( ULONG)rf;
  76.                 taglist[1].ti_Tag    = TAG_DONE;
  77.     
  78.                 if( R_Filer( ApplBase, taglist))    /* ein ganz neuer FileRequester */
  79.                     printf ("dir: [%s]\nfile: [%s]\n", rf->fr_Drawer, rf->fr_File,taglist[0].ti_Data);
  80.                 
  81.                 R_Destroy( ApplBase, rf);    /* Struktur wieder freigeben - wird automatisch von R_Exitappl erledigt */
  82.                 }
  83.     
  84.             taglist[0].ti_Tag    = RFO_DoStyle;
  85.             taglist[0].ti_Data    = FALSE;
  86.             taglist[1].ti_Tag    = RFO_DoFrontPen;
  87.             taglist[1].ti_Data    = FALSE;
  88.             taglist[2].ti_Tag    = RFO_DoBackPen;
  89.             taglist[2].ti_Data    = FALSE;
  90.             taglist[3].ti_Tag    = RFO_DoDrawMode;
  91.             taglist[3].ti_Data    = FALSE;
  92.             taglist[4].ti_Tag    = TAG_DONE;
  93.         
  94.             if( rfnt = R_FontReq( ApplBase, taglist))
  95.                 {
  96.                 printf ("font: [%s]\n",    rfnt->fo_Attr.ta_Name);
  97.         
  98.                 taglist[0].ti_Tag    = RSM_DoWidth;
  99.                 taglist[0].ti_Data    = TRUE;
  100.                 taglist[1].ti_Tag    = RSM_DoHeight;
  101.                 taglist[1].ti_Data    = TRUE;
  102.                 taglist[2].ti_Tag    = RSM_DoDepth;
  103.                 taglist[2].ti_Data    = TRUE;
  104.                 taglist[3].ti_Tag    = RSM_DoAutoScroll;
  105.                 taglist[3].ti_Data    = FALSE;
  106.                 taglist[4].ti_Tag    = RSM_DoOverScanType;
  107.                 taglist[4].ti_Data    = FALSE;
  108.                 taglist[7].ti_Tag    = TAG_DONE;
  109.                 }
  110.             if( smr = R_ModeIDReq( ApplBase, taglist))
  111.                 {
  112.             printf("Mode 0x%lx\n",smr->rs_DisplayID);
  113.             printf("Mode 0x%ld\n",smr->rs_DisplayWidth);
  114.             printf("Mode 0x%ld\n",smr->rs_DisplayHeight);
  115.                 }    
  116.             }
  117.         /* hier wird auf die ASL Requester umgeschaltet */
  118.         R_InitApplTags( RIA_ChangeFlags, ( ULONG)ApplBase, RIA_AutoRenderColor, 1L, RIA_UseAslFiler, 1L, RIA_UseAslFontReq, 1L, RIA_UseAslScrReq, 1L, TAG_DONE);
  119.         quit ^= 1;
  120.         } while( quit);
  121.     if( R_FormAlertTags( ApplBase, RFA_Center, 1L, RFA_CloseID , 2L, RFA_WindowDrag, 1L, RFA_WindowClose, 1L, RFA_WindowDepth, 1L, RFA_DefaultID, 2, RFA_GadgetText,"_OK|_Zurück",RFA_AlertText, "[2][ |Programm beenden ?]",TAG_DONE) == 1)
  122.         quit = -1;
  123.  
  124.   R_ExitAppl( ApplBase);
  125.   }
  126. else
  127.     printf("vermutlich falsche Library Version\n");
  128. CloseLibrary( ( struct Library *)RctBase);
  129. }
  130.  
  131. #include <rct/rcttagfuncs.h>
  132.  
  133.